Data packet based communication systems can encapsulate a data payload with a header containing protocol dependent fields for directing the transmission and/or processing of data packets. Typical data packet processing hardware can inspect such header data when determining where to forward the packet or whether to allow such a packet to enter a particular portion of a network. Typical packet inspection can operate on header fields and dispose of a packet according to a set of rules. Such rules can be based solely on header fields (can be stateless), or can take into account a packet position within a stream of packets (can be state oriented).
However, in order to help ensure that data packet content is benign, or to provide more sophisticated packet processing, it can be desirable to inspect an entire packet, including the packet payload. Unfortunately, such “deep” packet inspection can require undesirably long processing times, restricting packet throughput.